﻿// 5268. Python缩进.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*


在 Python 中，代码块没有显式的开始/结束或大括号来标记代码块的开始和结束。

相反，代码块是通过缩进定义的。

我们考虑一个极其简化的 Python 子集，其只有两种类型的语句：简单语句和 For
 语句。

简单语句（Simple statements）仅占一行，每行一个。
For
 语句（For statements）是复合语句：它们包含一个或多个其它语句。For
 语句由循环头和循环体共同组成。循环头是一个以 for
 开头的单独行。循环体是比循环头缩进一级的语句块。循环体可以包含两种类型的语句。循环体不能为空。
给定 n
 个没有缩进的语句，请你计算，通过合理缩进，一共可以形成多少个不同的有效 Python 代码。

输入格式
第一行包含整数 n
。

接下来 n
 行，每行包含一个字符 f（表示 For
 语句）或 s （表示简单语句），用来描述一行给定语句的类型。

保证最后一行一定是简单语句。

输出格式
一个整数，表示可以形成的不同有效 Python 代码的数量对 109+7
 取模后的结果。

数据范围
前 3
 个测试点满足 1≤n≤5
。
所有测试点满足 1≤n≤5000
。

输入样例1：
4
s
f
f
s
输出样例1：
1
样例1解释
可以形成一种有效代码：

simple statement
for statement
    for statement
        simple statement
输入样例2：
4
f
s
f
s
输出样例2：
2
样例2解释
可以形成以下两种有效代码：

for statement
    simple statement
    for statement
        simple statement
或

for statement
    simple statement
for statement
    simple statement
*/
int main()
{
    std::cout << "Hello World!\n";
}
 